热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python|使用Selenium自动化脸书生日快乐帖

Python|使用Selenium自动化脸书生日快乐帖原文:h

Python |使用Selenium自动化脸书生日快乐帖

原文:https://www . geesforgeks . org/python-自动化-生日快乐-facebook 上的帖子-使用-selenium/

众所周知,Selenium 是一种通过程序控制网络浏览器的工具。它可以在所有浏览器、操作系统中使用,它的程序是用各种编程语言编写的,即 Java、Python(所有版本)。

Selenium 可以帮助我们自动完成任何经常在笔记本电脑上完成的任务,从使用脸书信使发短信到 WhatsApp,每天在推特上发推文,在脸书祝朋友“生日快乐”,在谷歌上搜索任何我们想学的东西,以及更多的任务。所有这些任务都可以在一个小的实现中使用 selenium 实现自动化。

安装:


  • 转到命令提示符,并输入:

pip install selenium


  • 完成后,下载一个用于自动化的 web 驱动程序。这里,我们将使用来自http://chromedriver.chromium.org/的 chromedriver

让我们学习如何将在脸书朋友的时间线上许愿的过程自动化。

这种自动化的整个过程可以分为以下几个部分:


  • 使用用户名和密码等凭据登录脸书应用程序。

  • 在生日是今天的朋友的时间线上发布“生日快乐”消息。

以下是步骤:


  • 创建一个浏览器对象,并使用 get()函数向我们想要连接/使用的网站发送请求。

  • 找到用户名和密码输入框、登录按钮等元素,使用 selenium 函数(如 click()、send_keys()等)分别点击按钮并输入用户名和密码。

  • 之后使用 get()函数向/events/生日/页面发送请求。

  • 在这个页面的顶部,有一张“今天的生日”卡片,上面显示了一个朋友的名字,他的生日是今天,同时还有一个输入文本框,用于输入他们时间线上的任何提要。

  • 使用这些输入文本框的 XPATH,我们将使用 selenium 的 send_keys()函数发送我们的提要,即“生日快乐”。

  • 关闭浏览器。

注:在执行以下程序之前,创建一个单独的 test.txt 文件,并在其中输入您的脸书密码。

下面是实现:

Python 3

# importing necessary classes
# from different modules
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.keys import Keys
import time
chrome_optiOns= webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications": 2}
chrome_options.add_experimental_option("prefs", prefs)
browser = webdriver.Chrome("chromedriver.exe")
# open facebook.com using get() method
browser.get('https://www.facebook.com/')
# user_name or e-mail id
username = "agrawal.abhi108@gmail.com"
# getting password from text file
with open('test.txt', 'r') as myfile:
    password = myfile.read().replace('\n', '')
print("Let's Begin")
element = browser.find_elements_by_xpath('//*[@id ="email"]')
element[0].send_keys(username)
print("Username Entered")
element = browser.find_element_by_xpath('//*[@id ="pass"]')
element.send_keys(password)
print("Password Entered")
# logging in
log_in = browser.find_elements_by_id('loginbutton')
log_in[0].click()
print("Login Successful")
browser.get('https://www.facebook.com/events/birthdays/')
feed = 'Happy Birthday !'
element = browser.find_elements_by_xpath("//*[@class ='enter_submit\
       uiTextareaNoResize uiTextareaAutogrow uiStreamInlineTextarea\
                  inlineReplyTextArea mentionsTextarea textInput']")
cnt = 0
for el in element:
    cnt += 1
    element_id = str(el.get_attribute('id'))
    XPATH = '//*[@id ="' + element_id + '"]'
    post_field = browser.find_element_by_xpath(XPATH)
    post_field.send_keys(feed)
    post_field.send_keys(Keys.RETURN)
    print("Birthday Wish posted for friend" + str(cnt))
# Close the browser
browser.close()

推荐阅读
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 图像分类算法的优化策略与实践
    本文探讨了《Bag of Tricks for Image Classification with Convolutional Neural Networks》论文中的多项技术,旨在通过具体实例和实验验证,提高卷积神经网络在图像分类任务中的性能。文章详细介绍了从模型训练加速、网络结构调整到训练参数优化等多个方面的改进方法。 ... [详细]
  • 探索Python编程的价值与应用
    本文探讨了学习Python的重要性和广泛的应用场景,从个人技能提升到职业发展的多个方面进行了详细解析。 ... [详细]
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
  • chrome安装reactdevtools开发工具
    我开始安装react-devtools的时候百度了一波,都是写的不清不楚,官网又都是英文的也不是完全理解,经过一番折腾出来以后,写个文档记录一下,也可避免新手首次安装走弯路我安装react-devtools的前提是本地安装了git以及node我相信准备学react的同学,应该都有了解使用1.首先打开官网:https:github.comfacebook ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 2023年5月20日凌晨5:20(北京时间),由区块链技术和去中心化应用平台ArcBlock(区块基石)研发的ABT钱包移动应用程序,在苹果App Store和Google Play同步上线,标志着用户在数字世界中首次能够完全掌控自己的身份。 ... [详细]
  • 本文详细介绍了Java库com.datastax.driver.core.Metadata中的triggerOnUserTypeChanged方法的使用场景和代码实现,通过多个实际案例帮助开发者更好地理解和应用此方法。 ... [详细]
author-avatar
小丽之家ko
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有